Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

190
Vistas
La propiedad "en" no existe en Array

Según MDN Web Docs Array.prototype#at , es un método válido. Pero por alguna razón, TypeScript se niega a compilar, afirmando que no existe.

 public at(index: number): V { index = Math.floor(index); const arr = [...this.values()]; return arr.at(index); }

Salida de consola de tsc: Mecanografiado Se queja más

No puedo usar la notación de corchetes, ya que el método está diseñado para poder manejar números negativos. Probé muchas cosas, incluida la configuración del target en el archivo tsconfig.json en ESNext, ES2021 y ES6, pero fue en vano. La opción lib tampoco ayuda.

json

 // tsconfig.json { "compilerOptions": { "target": "ES2021", "outDir": "./dist", "declaration": true, "declarationDir": "./typings", "lib": ["ES2021", "ESNext"] } }

¿Que puedo hacer? ¿Estoy haciendo algo mal?

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Según MDN Web Docs Array.prototype#at , es un método válido.

MDN no puede decidir qué es parte de TypeScript y qué no. Los desarrolladores de TypeScript hacen eso.

Si MDN dice o no que algo es un "método válido" es relevante para Mozilla, y solo para Mozilla, pero no tiene relación con TypeScript.

Pero por alguna razón, TypeScript se niega a compilar, afirmando que no existe.

Esto se debe a que el método no existe en ninguna versión de ECMAScript compatible con TypeScript.

Probé muchas cosas, incluida la configuración del target en el archivo tsconfig.json en ESNext, ES2021 y ES6, pero fue en vano.

Esto se debe a que el método no existe ni en ECMAScript 6 ni en ECMAScript 2021 . Existe en ES2022 ( que es lo que es ESNext en este momento), pero solo se agregó hace ocho semanas y, por lo tanto, después de que se finalizó TypeScript 4.4 (y posiblemente también demasiado tarde para TypeScript 4.5).

La opción lib tampoco ayuda.

Nuevamente, eso se debe a que el método no existe en ninguna versión de biblioteca compatible con TypeScript en este momento.

Incluso en la rama principal actual, que se convertirá en TypeScript 4.6, lib/lib.esnext.d.ts solo corresponde a ECMAScript 2021 + las últimas extensiones de internacionalización .

¿Que puedo hacer? ¿Estoy haciendo algo mal?

Puede esperar hasta que el método realmente se convierta en parte de una versión lanzada de ECMAScript y/o TypeScript.

about 4 years ago · Juan Pablo Isaza Denunciar

0

Array#at es de hecho un nuevo método disponible solo en ESNext o usando un polyfill. Si está utilizando este último, puede aumentar la interfaz de matriz global de esta manera:

 declare global { interface Array<T> { at(index: number): T; } }
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda